﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using DevExpress.Xpo;
using Zero.POCO.Enum;

namespace Zero.DataLayer.Donnees.Tarifs
{
    public class XpoTarifTv : XPBaseObject
    {
        public XpoTarifTv()
            : base()
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }

        public XpoTarifTv(Session session)
            : base(session)
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }


        
        private Guid _Oid;
        [Key]
        public Guid Oid
        {
            get { return _Oid; }
            set { SetPropertyValue("Oid", ref _Oid, value); }
        }



        private string _Nom ;
        public string Nom
        {
            get { return _Nom; }
            set { SetPropertyValue("Nom", ref _Nom, value); }
        }



        private Mois _Mois;
        public Mois Mois
        {
            get { return _Mois; }
            set { SetPropertyValue("Mois", ref _Mois, value); }
        }

        private int _Annee;public int Annee
        {
            get { return _Annee; }
            set { SetPropertyValue("Annee", ref _Annee, value); }
        }


        private string _Autre;
        public string Autre
        {
            get { return _Autre; }
            set { SetPropertyValue("Autre", ref _Autre, value); }
        }


        [ Association("XpoTarifTv-XpoSupportTv")]
        public XPCollection<XpoSupportTV> SupportTvs
        {
            get { return GetCollection<XpoSupportTV>("SupportTvs"); }
        }



        [Aggregated, Association("XpoTarifTv-XpoLigneTarifTv")]
        public XPCollection<XpoLigneTarifTv> LigneTarifTvs
        {
            get { return GetCollection < XpoLigneTarifTv > ("LigneTarifTvs"); }
        }


        private XpoMapSupportTarifTv _MapSupportTarifTv;
        //[Association("XpoMapSupportTarifTv -XpoTarifTv")]
        public XpoMapSupportTarifTv MapSupportTarifTv
        {
            get { return _MapSupportTarifTv; }
            set { SetPropertyValue("MapSupportTarifTv", ref _MapSupportTarifTv, value); }
        }
    }



    public class XpoTarifRd : XPBaseObject
    {
        public XpoTarifRd()
            : base()
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }

        public XpoTarifRd(Session session)
            : base(session)
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }



        private Guid _Oid;
        [Key]
        public Guid Oid
        {
            get { return _Oid; }
            set { SetPropertyValue("Oid", ref _Oid, value); }
        }



        private string _Nom;
        public string Nom
        {
            get { return _Nom; }
            set { SetPropertyValue("Nom", ref _Nom, value); }
        }



        private Mois _Mois;
        public Mois Mois
        {
            get { return _Mois; }
            set { SetPropertyValue("Mois", ref _Mois, value); }
        }

        private int _Annee;
        public int Annee
        {
            get { return _Annee; }
            set { SetPropertyValue("Annee", ref _Annee, value); }
        }


        private string _Autre;
        public string Autre
        {
            get { return _Autre; }
            set { SetPropertyValue("Autre", ref _Autre, value); }
        }


        [Association("XpoTarifRd-XpoSupportRd")]
        public XPCollection<XpoSupportRadio> SupportRadios
        {
            get { return GetCollection<XpoSupportRadio>("SupportRadios"); }
        }



        [Aggregated, Association("XpoTarifRd-XpoLigneTarifRd")]
        public XPCollection<XpoLigneTarifRd> LigneTarifRds
        {
            get { return GetCollection<XpoLigneTarifRd>("LigneTarifRds"); }
        }

        private XpoMapSupportTarifRd _MapSupportTarifRd;
        [Association("XpoMapSupportTarifRd -XpoTarifRd")]
        public XpoMapSupportTarifRd MapSupportTarifPr
        {
            get { return _MapSupportTarifRd; }
            set { SetPropertyValue("MapSupportTarifRd", ref _MapSupportTarifRd, value); }
        }

    }



    public class XpoTarifPr : XPBaseObject
    {
        public XpoTarifPr()
            : base()
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }

        public XpoTarifPr(Session session)
            : base(session)
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }



        private Guid _Oid;
        [Key]
        public Guid Oid
        {
            get { return _Oid; }
            set { SetPropertyValue("Oid", ref _Oid, value); }
        }



        private string _Nom;
        public string Nom
        {
            get { return _Nom; }
            set { SetPropertyValue("Nom", ref _Nom, value); }
        }



        private Mois _Mois;
        public Mois Mois
        {
            get { return _Mois; }
            set { SetPropertyValue("Mois", ref _Mois, value); }
        }

        private int _Annee;
        public int Annee
        {
            get { return _Annee; }
            set { SetPropertyValue("Annee", ref _Annee, value); }
        }


        private string _Autre;
        public string Autre
        {
            get { return _Autre; }
            set { SetPropertyValue("Autre", ref _Autre, value); }
        }



        [Association("XpoTarifPr-XpoSupportPr")]
        public XPCollection<XpoSupportPresse> SupportPresses
        {
            get { return GetCollection<XpoSupportPresse>("SupportPresses"); }
        }

        
        [Aggregated, Association("XpoTarifPr-XpoLigneTarifPr")]
        public XPCollection<XpoLigneTarifPr> LigneTarifPrs
        {
            get { return GetCollection<XpoLigneTarifPr>("LigneTarifPrs"); }
        }



        private XpoMapSupportTarifPr _MapSupportTarifPr;
        [Association("XpoMapSupportTarifPr -XpoTarifPr")]
        public XpoMapSupportTarifPr MapSupportTarifPr
        {
            get { return _MapSupportTarifPr; }
            set { SetPropertyValue("MapSupportTarifPr", ref _MapSupportTarifPr, value); }
        }



    }


    public class XpoLigneTarifTv : XPBaseObject
    {
        public XpoLigneTarifTv()
            : base()
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }

        public XpoLigneTarifTv(Session session)
            : base(session)
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }


        private Guid _Oid;
        [Key]
        public Guid Oid
        {
            get { return _Oid; }
            set { SetPropertyValue("Oid", ref _Oid, value); }
        }
        private int _JourSemaine;
        public int JourSemaine
        {
            get { return _JourSemaine; }
            set { SetPropertyValue("JourSemaine", ref _JourSemaine, value); }
        }



        private TimeSpan _Debut;
        public TimeSpan Debut
        {
            get { return _Debut; }
            set { SetPropertyValue("Debut", ref _Debut, value); }
        }


        private TimeSpan _Fin;
        public TimeSpan Fin
        {
            get { return _Fin; }
            set { SetPropertyValue("Fin", ref _Fin, value); }
        }

        private int _Duree;
        public int Duree
        {
            get { return _Duree; }
            set { SetPropertyValue("Duree", ref _Duree, value); }
        }


        private double _Prix;
        public double Prix
        {
            get { return _Prix; }
            set { SetPropertyValue("Prix", ref _Prix, value); }
        }


        private XpoTarifTv _TarifTv;
        [Aggregated, Association("XpoTarifTv-XpoLigneTarifTv")]
        public XpoTarifTv TarifTv
        {
            get { return _TarifTv; }
            set { SetPropertyValue("TarifTv", ref _TarifTv, value); }
        }
    }




    public class XpoLigneTarifRd : XPBaseObject
    {
        public XpoLigneTarifRd()
            : base()
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }

        public XpoLigneTarifRd(Session session)
            : base(session)
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }
        private Guid _Oid;
        [Key]
        public Guid Oid
        {
            get { return _Oid; }
            set { SetPropertyValue("Oid", ref _Oid, value); }
        }
        private int _JourSemaine;
        public int JourSemaine
        {
            get { return _JourSemaine; }
            set { SetPropertyValue("JourSemaine", ref _JourSemaine, value); }
        }



        private TimeSpan _Debut;
        public TimeSpan Debut
        {
            get { return _Debut; }
            set { SetPropertyValue("Debut", ref _Debut, value); }
        }


        private TimeSpan _Fin;
        public TimeSpan Fin
        {
            get { return _Fin; }
            set { SetPropertyValue("Fin", ref _Fin, value); }
        }

        private int _Duree;
        public int Duree
        {
            get { return _Duree; }
            set { SetPropertyValue("Duree", ref _Duree, value); }
        }


        private double _Prix;
        public double Prix
        {
            get { return _Prix; }
            set { SetPropertyValue("Prix", ref _Prix, value); }
        }




        private XpoTarifRd _TarifRd;
        [Aggregated, Association("XpoTarifRd-XpoLigneTarifRd")]
        public XpoTarifRd TarifRd
        {
            get { return _TarifRd; }
            set { SetPropertyValue("TarifRd", ref _TarifRd, value); }
        }
    }



    public class XpoLigneTarifPr : XPBaseObject
    {
        public XpoLigneTarifPr()
            : base()
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }

        public XpoLigneTarifPr(Session session)
            : base(session)
        {
            // This constructor is used when an object is loaded from a persistent storage.
            // Do not place any code here.
        }
        private Guid _Oid;
        [Key]
        public Guid Oid
        {
            get { return _Oid; }
            set { SetPropertyValue("Oid", ref _Oid, value); }
        }


        private int _JourSemaine;
        public int JourSemaine
        {
            get { return _JourSemaine; }
            set { SetPropertyValue("JourSemaine", ref _JourSemaine, value); }
        }



   

        private int _Format;
        public int Format
        {
            get { return _Format; }
            set { SetPropertyValue("Format", ref _Format, value); }
        }


        private double _Prix;
        public double Prix
        {
            get { return _Prix; }
            set { SetPropertyValue("Prix", ref _Prix, value); }
        }



        private XpoTarifPr _TarifPr;
        [Aggregated, Association("XpoTarifPr-XpoLigneTarifPr")]
        public XpoTarifPr TarifPr
        {
            get { return _TarifPr; }
            set { SetPropertyValue("TarifPr", ref _TarifPr, value); }
        }
    }
}
